﻿using System.Collections.ObjectModel;
namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("MultiGeometry", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class MultiGeometryType : AbstractGeometricAggregateType
    {
        private Collection<GeometryPropertyType> _geometryMemberItems = new Collection<GeometryPropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("geometryMember")]
        public Collection<GeometryPropertyType> GeometryMemberItems 
        {
            get
            {
                return this._geometryMemberItems;
            }
        }

        private Collection<AbstractGeometryType> _geometryMembers = new Collection<AbstractGeometryType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiGeometry", Type = typeof(MultiGeometryType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiPoint", Type = typeof(MultiPointType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiCurve", Type = typeof(MultiCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiSurface", Type = typeof(MultiSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiSolid", Type = typeof(MultiSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Point", Type = typeof(PointType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("LineString", Type = typeof(LineStringType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("CompositeCurve", Type = typeof(CompositeCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Curve", Type = typeof(CurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("OrientableCurve", Type = typeof(OrientableCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Polygon", Type = typeof(PolygonType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("PolyhedralSurface", Type = typeof(PolyhedralSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Tin", Type = typeof(TinType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("TriangulatedSurface", Type = typeof(TriangulatedSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Surface", Type = typeof(SurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("CompositeSolid", Type = typeof(CompositeSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Solid", Type = typeof(SolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("LinearRing", Type = typeof(LinearRingType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Ring", Type = typeof(RingType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute("geometryMembers", IsNullable = false)]
        public Collection<AbstractGeometryType> GeometryMembers 
        {
            get
            {
                return this._geometryMembers;
            }
        }
    }
}
